int *p="ashf" 怎么理解

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:21:44
在c++中为什么指针能赋值给字符,而不能赋值给数字,而且,char *p=fasdsdaf"; cout<<&p[5];的运行结果怎么是sdaf?

int *p="ashf"的意思是定义一个int指针p,它的值等于字符串"ashf"在内存中的首地址,也就是字符'a'的地址,这个当然是可以的。cout<<&p[5];的运行结果应该不是sdaf吧,应该是daf才对,因为char* p="fasdsdaf"指的是p指针"fasdsdaf"的首地址,即p[0]='f',p[1]='a',...,所以p[5]='d',所以运行结果实p[5]之后的内容(包括p[5]),要记住,指针实际上就是内存地址。